package com.myKng.shareservice.dto;

import com.myKng.shareservice.model.AccessType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 分享链接请求DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShareLinkRequest {

    /**
     * 分享的内容ID
     */
    @NotNull(message = "内容ID不能为空")
    private Long contentId;

    /**
     * 分享的内容类型
     */
    @NotBlank(message = "内容类型不能为空")
    private String contentType;

    /**
     * 分享的标题
     */
    @NotBlank(message = "分享标题不能为空")
    private String title;

    /**
     * 分享的描述
     */
    private String description;

    /**
     * 访问类型
     */
    @NotNull(message = "访问类型不能为空")
    private AccessType accessType;

    /**
     * 访问密码（当访问类型为PRIVATE时必填）
     */
    private String accessPassword;

    /**
     * 过期时间
     */
    private LocalDateTime expiryTime;

    /**
     * 最大访问次数限制（0表示无限制）
     */
    private Integer maxAccessCount;
}